home *** CD-ROM | disk | FTP | other *** search
- Program DemoInput;
-
- { Purpose....... Demonstrates the use of the following units: win, screen,
- strings, datetime, cursor and input.
- Comments...... None
- Author........ Thayne Breetzke
- Date.......... 22 March 1994
- Updated....... 24 September 1994 }
-
- Uses
- Crt,
- Dos,
- Windows,
- Screen,
- Strings,
- DateTime,
- Cursor,
- Input;
-
- Var
- InputString,
- InputChoice : String;
- InputDay,
- InputMonth,
- InputHour,
- InputMin,
- InputSec,
- InputYear : Word;
- InputReal : Real;
- Key : Char;
- Extended,
- HelpOn : Boolean;
- CState : CStateRec;
-
- {$F+}
- Procedure UpdateProc(Var Key: Char; Var Extended: Boolean; UpdateVar: Word);
-
- Var
- Hour,
- Min,
- Sec,
- Sec100 : Word;
-
- Begin
- GetTime(Hour,Min,Sec,Sec100);
- WriteXY(72,25,TimeStr(Hour,Min,Sec,0,':'),CalcAttr(Black,LightGray));
- If (Key = #59) and not HelpOn then
- Begin
- HelpOn := True;
- SaveCursor(InsertKey,CState);
- CursorOff;
- OpenWindow(7,8,74,21,' Help ',' Press Esc to close this help window ',
- DoubleFrame,CalcAttr(White,Red),CalcAttr(White,Red),True);
- WriteMem(9,10,'No help available');
- GetKey(Key,Extended,[#27],[],True,True,UpdateProc,0);
- CloseWindow;
- RestoreCursor(CState);
- Key := #0;
- HelpOn := False
- end
- end;
- {$F-}
-
-
- Procedure SetupScreen;
-
- Begin
- TextAttr := 7;
- CursorOff;
- HelpOn := False;
- ClearArea(1,1,80,25,CalcAttr(LightGray,0),'▒');
- DrawBox(4,2,77,4,'','',DoubleFrame,CalcAttr(15,1),CalcAttr(14,1),True);
- WriteMem(5,3,Center('The "Complete" Borland Turbo Pascal 6.0 Toolbox',72));
- WriteXY(1,25,CopyChar(' ',80),CalcAttr(Black,LightGray));
- WriteXY(2,25,'F1',CalcAttr(Red,LightGray));
- WriteXY(5,25,'Help',CalcAttr(Black,LightGray));
- OpenWindow(11,10,70,17,'',' Press Ctrl-Enter to continue ',
- SingleFrame,CalcAttr(White,LightGray),CalcAttr(White,LightGray),True);
- end;
-
-
- Procedure DemoGetKey;
-
- Begin
- WriteXY(19,12,'Using GetKey routine to scan for keypresses',CalcAttr(Black,LightGray));
- WriteXY(15,14,'Last key pressed: ',CalcAttr(Black,LightGray));
- WriteXY(15,15,'Was it extended?: ',CalcAttr(Black,LightGray));
- Repeat
- GetKey(Key,Extended,[#0..#255],[#0..#255],True,True,UpdateProc,0);
- WriteXY(33,14,Key+' (#'+NumToStr(Ord(Key),0,0,False)+') ',CalcAttr(Black,LightGray));
- WriteXY(33,15,BoolToStr(Extended,'Yes/No')+' ',CalcAttr(Black,LightGray))
- until Key = #10
- end;
-
-
- Procedure DemoReadString(Var InputString: String);
-
- Begin
- ClearArea(12,11,69,16,CalcAttr(Black,LightGray),' ');
- WriteXY(12,12,Center('Using ReadString routine to read a string',58),CalcAttr(Black,LightGray));
- WriteXY(15,14,'Enter a string:',CalcAttr(Black,LightGray));
- InputString := '';
- ReadString(InputString,31,14,50,25,[#32..#126],False,[#13,#10,#27],[#45],
- Key,Extended,True,False,CalcAttr(Black,LightGray),UpdateProc,0)
- end;
-
-
- Procedure DemoReadDate(Var InputYear,InputMonth,InputDay: Word);
-
- Var
- DayOfWeek: Word;
-
- Begin
- ClearArea(12,11,69,16,CalcAttr(Black,LightGray),' ');
- WriteXY(12,12,Center('Using ReadDate routine to read a date',58),CalcAttr(Black,LightGray));
- WriteXY(15,14,'Enter a date:',CalcAttr(Black,LightGray));
- GetDate(InputYear,InputMonth,InputDay,DayOfWeek);
- ReadDate(InputYear,InputMonth,InputDay,29,14,1,'/',[#27,#13,#10],[],[],[],Key,
- Extended,2000,50,True,False,CalcAttr(Black,LightGray),UpdateProc,0)
- end;
-
-
- Procedure DemoReadTime(Var InputHour,InputMin,InputSec: Word);
-
- Var
- Sec100: Word;
-
- Begin
- ClearArea(12,11,69,16,CalcAttr(Black,LightGray),' ');
- WriteXY(12,12,Center('Using ReadTime routine to read a time',58),CalcAttr(Black,LightGray));
- WriteXY(15,14,'Enter a time:',CalcAttr(Black,LightGray));
- GetTime(InputHour,InputMin,InputSec,Sec100);
- ReadTime(InputHour,InputMin,InputSec,29,14,[#27,#13,#10],[],[],[],Key,
- Extended,2000,50,True,False,CalcAttr(Black,LightGray),UpdateProc,0)
- end;
-
-
- Procedure DemoReadReal(Var InputReal: Real);
-
- Var
- Sec100: Word;
-
- Begin
- ClearArea(12,11,69,16,CalcAttr(Black,LightGray),' ');
- WriteXY(12,12,Center('Using ReadReal routine to read a real value',58),CalcAttr(Black,LightGray));
- WriteXY(15,14,'Enter a real number:',CalcAttr(Black,LightGray));
- InputReal := 0;
- ReadReal(InputReal,35,14,8,2,True,[#27,#13,#10],[],Key,
- Extended,True,True,CalcAttr(Black,LightGray),UpdateProc,0)
- end;
-
-
- Procedure DemoReadChoice(Var InputChoice: String);
-
- Var
- Sec100: Word;
-
- Begin
- ClearArea(12,11,69,16,CalcAttr(Black,LightGray),' ');
- WriteXY(12,12,Center('Using ReadChoice routine to read a choice',58),CalcAttr(Black,LightGray));
- WriteXY(15,14,'Choose a value (Y/N/A):',CalcAttr(Black,LightGray));
- ReadChoice(InputChoice,'Yes|Y,No|N,Always|A',39,14,0,[#27,#13,#10],[],Key,
- Extended,True,CalcAttr(Black,LightGray),UpdateProc,0)
- end;
-
-
-
- Begin
- SetupScreen;
- DemoGetKey;
- DemoReadString(InputString);
- DemoReadDate(InputYear,InputMonth,InputDay);
- DemoReadTime(InputHour,InputMin,InputSec);
- DemoReadReal(InputReal);
- DemoReadChoice(InputChoice);
- CloseWindow;
- CursorOn(False);
- ClrScr;
- Writeln('String entered: '+InputString);
- Writeln('Upper case: '+Upper(InputString));
- Writeln('Lower case: '+Lower(InputString));
- Writeln;
- Writeln('Date entered: '+DateStr(InputYear,InputMonth,InputDay,7,'/'));
- Writeln;
- Writeln('Time entered: '+TimeStr(InputHour,InputMin,InputSec,5,':'));
- Writeln;
- Writeln('Real number entered: '+NumToStr(InputReal,8,2,False));
- Writeln;
- Writeln('Choice selected: '+InputChoice)
- end.